package ar.edu.utn.frba.tacs.warnes.pedido;

import java.util.List;

import ar.edu.utn.frba.tacs.warnes.entities.Pieza;

public abstract class PedidoStrategy {

	/**
	 * Devuelve las piezas segun el stato del pedido (Tira excepcion para un
	 * pedido cancelado)
	 * 
	 * @return List<Pieza>
	 */
	public abstract List<Pieza> getPiezas();

	public abstract void addPieza(Pieza pieza);

	public boolean estaCancelado() {
		return false;
	}

	public boolean estaEnCurso() {
		return false;
	}

	public boolean estaEfectivizado() {
		return false;
	}

	/**
	 * Solo si el pedido esta en curso puedo borrar una pieza
	 */
	public void borrarPieza(Pieza pieza) {
		if (this.estaEnCurso()) {
			this.getPiezas().remove(pieza);
		}
	}

}
